package com.huike.pmps.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 作者：谌贵斌(黑桃K)
 * 日期: 2888-08-08
 * 老师QQ: 272488352
 * 官方QQ交流群: 377748272
 * 刀客程序员官网：http://www.daoke360.com
 * 刀客程序员淘宝旗舰店：https://daoke360.taobao.com/
 */

/**
 * 供应商结算清单
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("p_supplier_settlement_detail")
public class SupplierSettlementDetail {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "p_po表主键id", hidden = true)
    private Integer poId;
    @ApiModelProperty(value = "po课程主键id", hidden = true)
    private Integer poCourseId;
    @ApiModelProperty("po课程供应商主键id")
    private Integer poCourseSupplierId;
    @ApiModelProperty(value = "po单号", hidden = true)
    private String po;
    @ApiModelProperty(value = "po对应的合同金额", hidden = true)
    private BigDecimal poContractAmount;
    @ApiModelProperty(value = "客户名称", hidden = true)
    private String customerName;
    @ApiModelProperty(value = "战区ID", hidden = true)
    private Integer regionId;
    @ApiModelProperty(value = "战区名称", hidden = true)
    private String regionName;
    @ApiModelProperty(value = "省份ID", hidden = true)
    private Integer provinceId;
    @ApiModelProperty(value = "省份名称", hidden = true)
    private String provinceName;
    @ApiModelProperty(value = "课程经理/负责人ID", hidden = true)
    private Integer courseChargeId;
    @ApiModelProperty(value = "课程经理/负责人名字", hidden = true)
    private String courseChargeName;
    @ApiModelProperty(value = "课程ID", hidden = true)
    private Long courseId;
    @ApiModelProperty(value = "课程名称", hidden = true)
    private String courseName;
    @ApiModelProperty(value = "学科门类ID", hidden = true)
    private Integer subjectCategoryId;
    @ApiModelProperty(value = "学科门类名称", hidden = true)
    private String subjectCategoryName;
    @ApiModelProperty(value = "专业类别", hidden = true)
    private String majorCategory;
    @ApiModelProperty(value = "拍摄形式ID", hidden = true)
    private Integer shootModeId;
    @ApiModelProperty(value = "拍摄形式名称", hidden = true)
    private String shootModeName;
    @ApiModelProperty(value = "供应商类型ID", hidden = true)
    private Integer supplierTypeId;
    @ApiModelProperty(value = "供应商类型名称", hidden = true)
    private String supplierTypeName;

    @ApiModelProperty(value = "供应商主键ID", hidden = true)
    private Integer supplierId;
    @ApiModelProperty(value = "供应商名称", hidden = true)
    private String supplierName;


    @ApiModelProperty(value = "服务类型ID", hidden = true)
    private Integer serviceTypeId;
    @ApiModelProperty(value = "服务类型名称", hidden = true)
    private String serviceTypeName;
    @ApiModelProperty(value = "服务名称", hidden = true)
    private String serviceName;
    @ApiModelProperty(value = "预估结算日期")
    private Date estimatedSettlementDate;
    @ApiModelProperty(value = "单价", hidden = true)
    private BigDecimal unitPrice;
    @ApiModelProperty(value = "数量", hidden = true)
    private Double quantity;
    @ApiModelProperty(value = "预估成本", hidden = true)
    private BigDecimal estimatedGenerationCost;
    @ApiModelProperty(value = "已支付")
    private BigDecimal supplierPaidAmount;
    @ApiModelProperty(value = "未支付")
    private BigDecimal supplierUnpaidAmount;
    @ApiModelProperty("供应商评级")
    private Double finalEvaluation;
    @ApiModelProperty(value = "描述", hidden = true)
    private String description;
    @ApiModelProperty("已交付时长")
    private Integer contractFinishedTimeLength;
    @ApiModelProperty("实际单价")
    private BigDecimal actualUnitPrice;
    @ApiModelProperty("实际数量")
    private BigDecimal actualQuantity;
    @ApiModelProperty("其他费用")
    private BigDecimal otherExpenses;
    @ApiModelProperty("实际总成本")
    private BigDecimal actualTotalCost;
    @ApiModelProperty("实际时长")
    private String actualTimeLength;
    @ApiModelProperty("支付状态ID")
    private Integer paymentStateId;
    @ApiModelProperty("支付状态名称")
    private String paymentStateName;
    @ApiModelProperty("发票类型ID")
    private Integer invoiceTypeId;
    @ApiModelProperty("发票类型名称")
    private String invoiceTypeName;
    @ApiModelProperty("税点")
    private String taxPoint;
    @ApiModelProperty("拍摄素材")
    private Boolean shootSourceMaterial;
    @ApiModelProperty("工程归档")
    private Boolean projectFiling;
    @ApiModelProperty("净版归档")
    private Boolean pureFiling;
    @ApiModelProperty("归档日期")
    private Date filingDate;
    @ApiModelProperty("结款日期")
    private Date settlementDate;
    @ApiModelProperty(value = "验收单保存路径")
    private String acceptanceReportPath;

    @ApiModelProperty(value = "导入标记(1非导入,2导入)", hidden = true)
    private Integer importFlag;
    @ApiModelProperty(value = "从旧系统中导入的原始服务ID", hidden = true)
    private Integer importServiceId;

    @ApiModelProperty(value = "记录状态(0新结算单，1已入库)")
    private Integer state;
    @ApiModelProperty("编辑状态（false or true）")
    private Boolean rowEdit;
    @ApiModelProperty(value = "记录更新时间")
    private Date updateTime;
    @ApiModelProperty(value = "记录创建时间", hidden = true)
    private Date createTime;
}
